قناع (حوسبة)
المظهر
يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. (يناير 2022) |
![](http://upload.wikimedia.org/wikipedia/commons/thumb/0/0d/Binary_mask_ro.png/200px-Binary_mask_ro.png)
في علم الحاسوب، القناع هو نمط من البتات التي يمكن إستعمالها للاحتفاظ بنمط اخر من البتات وضغطها. باستخدام قناع، يمكن ضبط بتات متعددة في بايت أو نايبل أو كلمة إلخ. أما القناع في أنظمة الاتصالات فيعني الوسيلة لحجب أو إخفاء أو منع الحصول على معلومات من خلال تحليل إشارات الغتصال.
وظائف القناع الشائعة
[عدل]أقنعة بت إلى 1
[عدل]لتشغيل بعض وحدات البت، يمكن استخدام عملية OR
المعيارية، باتباع مبدأ أن Y OR 1 = 1
وY OR 0 = Y
لذلك، للتأكد من تشغيل بعض الشيء، OR
يمكن استخدام الرقم 1
. لترك بعض الشيء دون تغيير، يتم استخدام OR
مع 0
.
1001 0101 1010 0101 أو 1111 0000 1111 0000 = 1111 0101 1111 0101
أقنعة بت إلى 0
[عدل]مثال على كل من modulo وmasking في C:
#include <stdint.h>
#include <string.h>
int main(void) {
const uint32_t NUM_BUCKETS = 0xFFFFFFFF; // 2^32
const uint32_t MAX_RECORDS = 1<<10; // 2^10
const uint32_t HASH_BITMASK = 0x3FF; // (2^10)-1
char **token_array = NULL;
// Handle memory allocation for token_array…
char token[] = "some hashable value";
uint32_t hashed_token = hash_function(token, strlen(token), NUM_BUCKETS);
// Using modulo
size_t index = hashed_token % MAX_RECORDS;
// OR
// Using bitmask
size_t index = hashed_token & HASH_BITMASK;
*(token_array+index) = token;
// Free the memory from token_array …
return 0;
}
مراجع
[عدل]انظر أيضًا
[عدل]- قناع التقارب
- حقل بت
- معالجة البتات
- عملية bitwise
- تجزئة الشبكة
- مؤشر معلم
- umask